import logging
from uuid import UUID

from celery import shared_task

import time
import os


# 添加远程调试支持
def setup_remote_debugging():
    """设置远程调试"""
    if os.environ.get('CELERY_TASK_DEBUG') == '1':
        try:
            import debugpy
            # 5678是调试端口
            debugpy.listen(('0.0.0.0', 5678))
            logging.info("等待调试器连接到端口5678...")
            debugpy.wait_for_client()
            logging.info("调试器已连接！")
            # 在此设置断点
            debugpy.breakpoint()
        except ImportError:
            logging.warning("未找到debugpy模块，无法进行远程调试。请安装: pip install debugpy")


@shared_task
def demo_task(id: UUID) -> str:
    """测试异步任务"""
    # 在任务开始时设置远程调试，需要CELERY_TASK_DEBUG=1环境变量
    setup_remote_debugging()

    logging.info("睡眠5秒")
    time.sleep(5)
    logging.info(f"id的值:{id}")
    return "慕小课"


# 添加本地测试函数
def local_demo_task(id: UUID) -> str:
    """本地同步执行版本的demo_task，用于调试"""
    logging.info("本地调试模式：直接执行demo_task")
    return demo_task(id)
